Personalized content sharing

ABSTRACT

A method for providing personalized content sharing is disclosed. The method includes: presenting, by a user device of a user of the content sharing platform, a user interface (UI) including content and a UI share element allowing the user to share the content with other users; in response to a selection of the UI share element by the user in the UI, transmitting, to a server, a request to share the content with other users; receiving, from the server, a server-selected subset of contacts of the user on the content sharing platform, wherein contacts in the subset of contacts are selected from a plurality of contacts of the user on the content sharing platform based on at least one of (i) an affinity of the user with each contact of the subset of contacts on the content sharing platform, or (ii) interactions of the user with content of each contact of the subset of contacts; presenting, to the user, the subset of contacts of the user comprising a first contact of the plurality of contacts of the user and not including a second contact of the plurality of contacts of the user; and allowing the user to share the content with the first contact of the plurality of contacts.

RELATED APPLICATIONS

This application is a continuation application of co-pending U.S. patentapplication Ser. No. 16/188,112, filed Nov. 12, 2018, which is acontinuation application of U.S. patent application Ser. No. 14/639,276,filed Mar. 5, 2015, now U.S. Pat. No. 10,127,311, which is hereinincorporated by reference.

TECHNICAL FIELD

This disclosure relates to the field of content sharing and, inparticular, to personalized content sharing with target users.

BACKGROUND

On the Internet, social networks allow users to connect to and shareinformation with each other. Many social networks include a contentsharing aspect that allows users to upload, view, and share content,such as video content, image content, audio content, and so on. Otherusers of the social network may comment on the shared content, discovernew content, locate updates, share content, and otherwise interact withthe provided content. The shared content may include content fromprofessional content creators, e.g., movie clips, TV clips, and musicvideos, as well as content from amateur content creators, e.g., videoblogging and short original videos.

The content sharing platforms can include one or more channels or one ormore channels can be viewable over the Internet. A channel is amechanism for providing certain media items and/or for providing accessto media items to subscribers. Media items for the channel can beselected by a user, uploaded by a user, selected by a content provider,or selected by a broadcaster. Users can subscribe to one or morechannels. When the content of a channel is optimized (e.g., focused orspecialized) for a coherent audience of users, users of the contentsharing platform are more likely to keep watching content items of thechannel and/or to subscribe to the channel.

SUMMARY

The following is a simplified summary of the disclosure in order toprovide a basic understanding of some aspects of the disclosure. Thissummary is not an extensive overview of the disclosure. It is intendedto neither identify key or critical elements of the disclosure, nordelineate any scope of the particular implementations of the disclosureor any scope of the claims. Its sole purpose is to present some conceptsof the disclosure in a simplified form as a prelude to the more detaileddescription that is presented later.

In one implementation, a method in accordance with one implementation ofthe disclosure includes receiving, by a processing device from a firstcomputing device of a first user, a request pertaining to a first video,determining affinity scores corresponding to a first plurality of otherusers that are contacts of the first user, the determining based onaffinities of the first plurality of other users for the first video,and providing, to the first computing device, a prompt to the first userto share the first video with at least one second user of the firstplurality of other users, the at least one second user determined basedon the affinity scores.

In some implementations, the method further includes receiving, from thefirst computing device in view of the prompt, an indication that thefirst video is to be shared with the second user; and causinginformation of the first video to be sent to a second computing deviceof the second user.

In some implementations, the method further includes determining theaffinity scores based on affinities between the first plurality of otherusers and the first user.

In some implementations, the method further includes determining a firstaffinity score indicative of a likelihood that the second user wouldinteract with the first video.

In some implementations, the method further includes determining asecond affinity score indicative of an affinity between the second userand the first user.

In some implementations, the method further includes determining a thirdaffinity score based on at least one of the first affinity score or thesecond affinity score, wherein the second user is further selected basedat least in part on the third score.

In some implementations, the method further comprises: ranking theplurality of affinity scores, wherein the second user is furtherselected based on the ranking.

In some implementations, the method further includes identifying, usingthe processing device, at least one second video that the second userand a second plurality of users have interacted with, and identifying afirst set of content items that the second plurality of users haveinteracted with.

In some implementations, the method further includes identifying, usingthe processing device, at least one third content item that the firstuser and a third plurality of users have interacted with; identifying athird plurality of users that have interacted with the third contentitem; and identifying a second set of content items that the thirdplurality of users have interacted with, wherein the second user isfurther determined based on the first set of content items and thesecond set of content items.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings.

FIG. 1 illustrates an example of a system architecture, in accordancewith some implementations of the disclosure.

FIG. 2 is a block diagram illustrating examples of a content sharingcomponent and a data store in accordance with some implementations ofthe disclosure.

FIG. 3A is an example of a user interface that can be used for providingpersonalized content sharing functionality, according to oneimplementation of the disclosure.

FIG. 3B illustrates examples of user interfaces for providingpersonalized content sharing functionality, according to anotherimplementation of the disclosure.

FIG. 4 is a flow diagram illustrating a method for providingpersonalized content sharing functionality by a client device, accordingto some implementations of the disclosure.

FIG. 5 is a flow diagram illustrating a method for providingpersonalized content sharing functionality by a server device, accordingto some implementations of the disclosure.

FIG. 6 is a flow diagram illustrating a method for identifying targetusers for content sharing, according to some implementations of thedisclosure.

FIG. 7 is a flow diagram illustrating a method for determining affinityscores for a candidate target user, according to some implementations ofthe disclosure.

FIG. 8 is a block diagram illustrating an exemplary example of acomputer system, according to some implementations.

DETAILED DESCRIPTION

Implementations are described for personalized content sharing. While afirst user interacts with a content item (e.g., consuming a video),implementations of the disclosure may identify one or more other users(also referred to herein as “target users”) that would likely beinterested in the content item. Implementations of the disclosure maythen prompt the first user to share the content item with the targetusers (e.g., by presenting a user interface, a message, a video, etc.).Upon receiving an indication that the first user intends to share thecontent item with one or more of the target users, implementations ofthe disclosure may send information related to the content item to thetarget users (e.g., by initiating a conversation between the first userand the target users using a media viewer, a messaging application,etc.).

As used herein, the term “content item” may refer to an electronic filethat can be executed or loaded using software, firmware or hardwareconfigured to present the content item to an entity. A content item maycontain video content, audio content, text content, images, and/or anyother content.

To identify the target users, implementations of the disclosure maydetermine one or more other users that are contacts of the first user(also referred to herein as “contact users”). As used herein, a contactof a given user may refer to a “friend,” a “follower,” a “subscriber,” a“connection,” a “phone contact,” and/or any other user that is connectedto the given user via a content sharing platform, a mobile platform, asocial network platform, an email service, a phone service, and/or anyother platform or service.

Implementations of the disclosure may select one or more of the contactusers as target users with which the content item can be shared. Forexample, implementations of the disclosure calculate affinity scoresbased on affinities of the contact users for the content item and/oraffinities between the contact users and the first user. The targetusers may then be identified based on the affinity scores (e.g., the topX contact users, the top ten percent of the contact users, etc.). Insome implementations, affinities of a user and another entity (e.g., achannel, another user, etc.) may include the user's interactions withthe entity and/or content associated with the entity. In one example,affinities of a user for a content item (e.g., a video, an image, anarticle, etc.) may include the user's interactions with the contentitem, such as consuming (e.g., watching, reviewing, reading, etc.) thecontent item, providing a comment in association with the content item,liking the content item, sharing the content item, uploading the contentitem to a content sharing platform, etc. In one example, affinities of afirst user for a second user may include the first user's interactionswith content items associated with the second user (e.g., videos,images, text, etc. shared by the second user via a content sharingplatform).

As another example, implementations of the disclosure select one or morecontact users that are connected to the first user via a particularplatform or in a particular manner as being target users. In oneexample, the target users can be contact users that are connected to thefirst user via a content sharing platform, a mobile platform, etc. Inanother example, the target users can be contact users that havesubscribed to content associated with the first user published via acontent sharing platform.

Previously, content sharing platforms did not provide a solution forpersonalized content sharing. For example, to share a video via acontent sharing platform, a user may have to publish the video on thecontent sharing platform and broadcast the video to all other users thatare connected to the user via the content sharing platform. As such,these content sharing platforms and/or social networks are not able toprovide a solution to share content items with particular contacts ofthe user that would likely interact with the content items.

Implementations of the disclosure allow a content sharing platformand/or a social network to provide personalized content sharingfunctionality by prompting a user to share a content item with contactsof the user that would likely interact with the content item. This cancreate high-quality content sharing experiences for users of the contentsharing platform and can promote affinities between the users.

FIG. 1 illustrates an example of a system architecture 100, inaccordance with one implementation of the disclosure, for personalizedcontent sharing. The system architecture 100 includes client devices110A through 110Z, a network 105, a data store 106, a content sharingplatform 120, a server 130, and a mobile platform 150. In oneimplementation, network 105 may include a public network (e.g., theInternet), a private network (e.g., a local area network (LAN) or widearea network (WAN)), a wired network (e.g., Ethernet network), awireless network (e.g., an 802.11 network or a Wi-Fi network), acellular network (e.g., a Long Term Evolution (LTE) network), routers,hubs, switches, server computers, and/or a combination thereof. In oneimplementation, the data store 106 may be a memory (e.g., random accessmemory), a cache, a drive (e.g., a hard drive), a flash drive, adatabase system, or another type of component or device capable ofstoring data. The data store 106 may also include multiple storagecomponents (e.g., multiple drives or multiple databases) that may alsospan multiple computing devices (e.g., multiple server computers).

The client devices 110A through 110Z may each include computing devicessuch as personal computers (PCs), laptops, mobile phones, smart phones,tablet computers, netbook computers etc. In some implementations, clientdevice 110A through 110Z may also be referred to as “user devices.” Eachclient device includes a media viewer 111. In one implementation, themedia viewers 111 may be applications that allow users to view content,such as images, videos, web pages, documents, etc. For example, themedia viewer 111 may be a web browser that can access, retrieve,present, and/or navigate content (e.g., web pages such as Hyper TextMarkup Language (HTML) pages, digital media items, etc.) served by a webserver. The media viewer 111 may render, display, and/or present thecontent (e.g., a web page, a media viewer) to a user. The media viewer111 may also display an embedded media player (e.g., a Flash® player oran HTML5 player) that is embedded in a web page (e.g., a web page thatmay provide information about a product sold by an online merchant). Inanother example, the media viewer 111 may be a standalone applicationthat allows users to view digital media items (e.g., digital videos,digital images, electronic books, etc.).

The media viewers 111 may be provided to the client devices 110A through110Z by the server 130 and/or content sharing platform 120. For example,the media viewers 111 may be embedded media players that are embedded inweb pages provided by the content sharing platform 120. In anotherexample, the media viewers 111 may be applications that are downloadedfrom the server 130.

In general, functions described in one implementation as being performedby the content sharing platform 120 can also be performed on the clientdevices 110A through 110Z in other implementations if appropriate. Inaddition, the functionality attributed to a particular component can beperformed by different or multiple components operating together. Thecontent sharing platform 120 can also be accessed as a service providedto other systems or devices through appropriate application programminginterfaces, and thus is not limited to use in websites.

In one implementation, the content sharing platform 120 may be one ormore computing devices (such as a rackmount server, a router computer, aserver computer, a personal computer, a mainframe computer, a laptopcomputer, a tablet computer, a desktop computer, etc.), data stores(e.g., hard disks, memories, databases), networks, software components,and/or hardware components that may be used to provide a user withaccess to media items and/or provide the media items to the user. Forexample, the content sharing platform 120 may allow a user to consume,upload, search for, approve of (“like”), dislike, and/or comment onmedia items. The content sharing platform 120 may also include a website(e.g., a webpage) that may be used to provide a user with access to themedia items. Content sharing platform 120 may include any type ofcontent delivery network providing access to content and/or media items.

The content sharing platform 120 may include multiple channels (e.g.,channels A through Z). A channel can be data content available from acommon source or data content having a common topic or theme. The datacontent can be digital content chosen by a user, digital content madeavailable by a user, digital content uploaded by a user, digital contentchosen by a content provider, digital content chosen by a broadcaster,etc. For example, a channel X can include videos Y and Z. A channel canbe associated with an owner, who is a user that can perform actions onthe channel.

Different activities can be associated with the channel based on theowner's actions, such as the owner making digital content available onthe channel, the owner selecting (e.g., liking) digital contentassociated with another channel, the owner commenting on digital contentassociated with another channel, etc. The activities associated with thechannel can be collected into an activity feed for the channel. Users,other than the owner of the channel, can subscribe to one or morechannels in which they are interested. Once a user subscribes to achannel, the user can be presented with information from the channel'sactivity feed. An activity feed may be a list of recent activityassociated with the user and occurring on the social network. If a usersubscribes to multiple channels, the activity feed for each channel towhich the user is subscribed can be combined into a syndicated activityfeed. Information from the syndicated activity feed can be presented tothe user. Although channels are described as one implementation of acontent sharing platform, implementations of the disclosure are notlimited to content sharing platforms that provide content items via achannel model.

Each channel may include one or more content items 121. Examples of acontent item 121 can include, and are not limited to, digital video,digital movies, digital photos, digital music, website content, socialmedia updates, electronic books (ebooks), electronic magazines, digitalnewspapers, digital audio books, electronic journals, web blogs, realsimple syndication (RSS) feeds, electronic comic books, softwareapplications, etc. In some implementations, content item 121 is alsoreferred to as a media item.

A content item 121 may be consumed via the Internet and/or via a mobiledevice application. As used herein, “media,” “media item,” “online mediaitem,” “digital media,” “digital media item,” “content,” and “contentitem” can include an electronic file that can be executed or loadedusing software, firmware or hardware configured to present the digitalcontent item to an entity. In one implementation, the content sharingplatform 120 may store the content items 121 using the data store 106.

Mobile platform 150 may be and/or include one or more computing devices(e.g., servers), data stores, networks, software components, and/orhardware components that may be used to allow users to connect to, shareinformation, and/or interact with each other using one or more mobiledevices (e.g., phones, tablet computers, laptop computers, wearablecomputing devices, etc.) and/or any other suitable device. For example,the mobile platform 150 may enable telephony communication, ShortMessage Service (SMS) messaging, Multimedia Message Service (MMS)messaging, text chat, video chat, and/or any other communication betweenusers.

The mobile platform 150 may present to a user a listing (e.g., activityfeed, feed, stream, wall, etc.) of objects (e.g., posts, content items(e.g., videos, images, audios, etc.), status updates, favorabilityindications, tags, messages, etc.) generated by other users of themobile platform. The mobile platform 150 may also include a contentsharing aspect that allow users to upload, view, tag, share, and/orperform any other function on content, such as text content, videocontent, image content, audio content, etc. Other users of the mobileplatform 150 may comment on the shared content, discover new content,locate updates, share content, and otherwise interact with the providedcontent.

In one implementation, the content sharing platform 120 may beintegrated with the mobile platform 150. For example, the mobileplatform 150 may use the content sharing platform 120 to provide userswith content sharing, content storage, content streaming, contentprocessing, and/or any other service. In one example, a user of themobile platform 150 may upload and/or share content via the contentsharing platform 120. In another implementation, the mobile platform 150may be separate from the content sharing platform 120.

In one implementation, the server 130 may be one or more computingdevices (e.g., a rackmount server, a server computer, etc.). In oneimplementation, the server 130 may be included in the content sharingplatform 120 and/or the mobile platform 150. In another implementation,the server 130 may be separate from the content sharing platform 120and/or the mobile platform 150 but may communicate (e.g., exchange datawith) the content sharing platform 120 and/or the mobile platform 150.

In one implementation, the server 130 may include a content sharingcomponent 140. The content sharing component 140 can providepersonalized content sharing functionality to users of the contentsharing platform 120, the mobile platform 150, and/or any otherplatform. For example, the content sharing component 140 may prompt afirst user to share a content item with one or more target users thatwould likely interact with the content item. The target users caninclude and/or be one or more contacts of the users. The target userscan be identified based on information related to affinities between thetarget users and the first user, information related to affinities ofthe target users for the content item, and/or any other suitableinformation. In one example, affinities of a user for a content item(e.g., a video, an image, an article, etc.) may include the user'sinteractions (or a measurement or other indicator of the user'sinteractions) with the content item, such as consuming (e.g., watching,reviewing, reading, etc.) the content item, providing a comment inassociation with the content item, liking the content item, sharing thecontent item, uploading the content item to a content sharing platform,etc. In one example, affinities of a first user for a second user mayinclude the first user's interactions with content items associated withthe second user (e.g., videos, images, text, etc. shared by the seconduser via a content sharing platform).

In one implementation, the prompt can be provided to the first user whenthe media viewer 111 provides playback of the content item for the firstuser and/or presents information related to the content item using auser interface. In another implementation, the prompt can be provided tothe first user upon the user uploading the content item to the contentsharing platform 120, mobile platform 150, and/or any other platform.

Further description of the content sharing component 140 and itsspecific functions is described in more detail below with respect toFIG. 2.

Although implementations of the disclosure are discussed in terms ofcontent sharing platforms and promoting social network sharing of acontent item on the content sharing platform, implementations may alsobe generally applied to any type of social network providing connectionsbetween users or to any type of content delivery platform providingcontent to end users. Implementations of the disclosure are not limitedto content sharing platforms that provide channel subscriptions tousers.

In situations in which the systems discussed here collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether the contentsharing platform 120 collects user information (e.g., information abouta user's social network, social actions or activities, profession, auser's preferences, or a user's current location), or to control whetherand/or how to receive content from the content server that may be morerelevant to the user. In addition, certain data may be treated in one ormore ways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by the content sharing platform 120, the server 130, the mobileplatform 150, and/or any other component of the system 100.

FIG. 2 is a block diagram illustrating a content sharing component 140and a data store 106 in accordance with one implementation of thedisclosure. In one implementation, the content sharing component 140includes a target user recommendation module 210, an affinity scoremodule 220, a content sharing user interface (UI) module 230, and acontent sharing module 240. More or less components may be included inthe content sharing component 140 without loss of generality. Forexample, two of the modules may be combined into a single module, or oneof the modules may be divided into two or more modules. In oneimplementation, one or more of the modules may reside on differentcomputing devices (e.g., different server computers). In one embodiment,the content sharing component and the data store of FIG. 2 may be thesame as the content sharing component 140 and the data store 106 of FIG.1, respectively.

The content sharing component 140 may be communicatively coupled to eachother and to the data store 106. For example, the content sharingcomponent 140 may be coupled the data store 106 via a network (e.g., vianetwork 105 as illustrated in FIG. 1). In another example, the datastore 106 may be coupled directly to a server where the content sharingcomponent 140 resides (e.g., may be directly coupled to server 130). Thedata store 106 may be a memory (e.g., random access memory), a cache, adrive (e.g., a hard drive), a flash drive, a database system, or anothertype of component or device capable of storing data. The data store 106may also include multiple storage components (e.g., multiple drives ormultiple databases) that may also span multiple computing devices (e.g.,multiple server computers). The data store 106 includes content itemdata 251, user data 253, affinity data 255, and/or any other data thatcan be used to provide personalized content sharing functionality.

The content item data 251 may include information related to contentitems 121 of FIG. 1 and/or any other content item. For example, thecontent item data 250 may include information that can be used toprovide playback of the content items 121 (e.g., video content, audiocontent, metadata, etc.). As another example, the content item data 250may include identifying information related to the content items 121(e.g. video identifiers, uniform resource locators (URLs), etc.).

The user data 253 may include information related to users of a contentsharing platform, such as the content sharing platform 120 of FIG. 1.For example, the user data 253 may include identifying information thatcan be used to identify the users, such as user identifiers associatedwith the users.

As another example, the user data 253 may include information related toone or more contacts of a given user, such as user identifiersassociated with the contacts, profile images or avatars associated withthe contacts, etc. Examples of a contact of the user include a “friend,”a “follower,” a “subscriber,” a “connection,” a “phone contact,” and/orany other user that is connected to the user via the content sharingplatform 120, the mobile platform 150, a social network, an emailservice, a phone service, and/or any other platform or service.

As a further example, the user data 253 may include information relatedto content items that have been interacted with by user of the contentsharing platform. Information related to a content item consumed by agiven user can include identifying information related to the contentitem (e.g., a content identifier, a description, a title, etc.), etc.

The affinity data 255 may include information related to users'affinities for content items and/or other users. For example, theaffinity data 255 may include information related to user interactionswith content items. Examples of user interactions with a content iteminclude consuming (e.g., watching, reviewing, reading, etc.) the contentitem, subscribing to a channel associated with the content item,providing a comment in association with the content item (e.g., using apublicly-available comments section associated with the content item,using a social messaging platform, etc.), liking the content item,reviewing information related to the content item, sharing the contentitem, uploading the content item to a content sharing platform, etc. Inanother example, the affinity data 255 may include affinity scoresindicative of affinities between users and/or affinities of a user for acontent item. These affinity scores can be determined as described inmore detail further below.

In some implementations, each piece of information stored in the datastore 106 may be associated with an identifier that indicates whetherthe piece of information is private information or public information.The content sharing component 140 may perform an action (e.g., storing,retrieving, using, etc.) on private information related to a user uponrequesting a permission to perform the action and receiving thepermission from the user.

In one implementation, a user may designate particular informationrelated to the user (e.g., the user's interactions with a particularcontent item, the user's interactions with the content sharing platform120, etc.) as private information or public information. Moreparticularly, for example, the user may designate information related toone or more particular types of interactions with the content sharingplatform (e.g., consuming content items via the content sharingplatform, etc.) as being private information. The data store 106 thenstores the information in association with an identifier indicating thatthe information is private information.

In another implementation, information related to a user may be storedin the data storage 106 as public information if the information can beobtained without the user's approval of access to the information. Forexample, such information may include comments provided by the userusing a publicly available comments section associated with a contentitem, information available on a publicly accessible web page associatedwith the user, etc.

As discussed above, the content sharing component 140 may prompt a firstuser to share a content item (also referred to herein as “first contentitem”) with one or more other users (also referred to herein as “targetusers”). The target user recommendation module 210 identifies the targetusers based on the content item data 251, the user data 253, theaffinity data 255, and/or any other suitable information.

For example, the target user recommendation module 210 identifies one ormore users that are contacts of the first user (also referred to hereinas “contact users”) and then selects one or more of the contact users astarget users. In one implementation, the contacts of the first user maybe identified based on the user data 253 related to the first user(e.g., identifying information related to contacts of the first user).In another implementation, upon the first user granting access toinformation related to contacts of the first users (e.g., informationrelated to phone contacts of the first user), the target userrecommendation module 210 accesses the information and identifiescontacts of the first user (e.g., phone contacts).

The target user recommendation module 210 may select target users fromthe contact users using any suitable technique or combination oftechniques. For example, the target user recommendation module 210 canselect one or more of the contact users that are connected to the firstuser via a particular platform and/or in a particular manner. In a moreparticular example, one or more contact users that have subscribed tocontent associated with the user (e.g., a channel on the content sharingplatform 120) are identified as the target users.

As another example, the target user recommendation module 210 may selectone or more target users by performing a clustering analysis. In oneimplementation, the clustering analysis may be performed based on theirinteractions with various content items. More particularly, for example,users that have interacted with the same and/or similar content itemscan be clustered together. The term “clustering” may refer to groupingusers together. Similar content items may refer to content items thatare associated with the same actors, authors, genres, keywords, etc.Alternatively or additionally, users can be clustered based on theusers' likelihood of having watched the same or similar sets of contentitems. The target user recommendation module 210 may then identify oneor more clusters that the contact users fall in and one or more clustersthat the first content item fall in. One or more target users can beidentified by determining an interaction between the identifiedclusters.

As yet another example, the target user recommendation module 210identifies one or more target users based on affinities of the contactusers for the first content item and/or affinities between the contactusers and the first user. In some implementations, the affinities of thecontact users for the content item and/or the affinities between thecontact users and the first user can be measured using one or moreaffinity scores, such as individual scores indicative of the likelihoodthat the contact users would interact with the first content item,individual affinity scores indicative of affinities between the contactusers and the first user, overall affinity scores determined based onthe individual affinity scores, etc. In some implementations, theaffinity scores can be determined by the affinity score module 220 asdescribed in more detail below.

Each of the affinity scores may be any number, text, and/or value thatmay be used to indicate affinities of the contact users for the firstcontent item and/or affinities between the contact users and the firstuser. For example, an affinity score may be a numerical value from 0 to1 (e.g., 0.8) where a value of 0 indicates no affinity between two usersand a value of 1 indicates a very high value of affinity. In anotherexample, an affinity score may be a numerical value from 1 to 10, or 1to 100, where a higher number indicates of a value of affinity.

The target user recommendation module 210 may identify one or moretarget users based on affinity scores corresponding to the contactusers. For example, the target user recommendation module 210 canidentify one or more contact users with an assigned affinity score(e.g., an individual affinity score, an overall affinity score, etc.)over a certain threshold.

As another example, the target user recommendation module 210 can rankthe contact users or a set of the contact users by affinity score (e.g.,individual affinity score, overall affinity score, etc.). In oneimplementation, contact users having relatively higher affinity scoresmay receive higher rankings. In one example, a contact user having thehighest affinity may receive a top ranking. The target userrecommendation module 210 can then identify a number or proportion ofthe contact users as target users based on the ranking. In a moreparticular example, the target user recommendation module 210 canidentify a number of the contact users associated with particularaffinity scores (e.g., the top ten affinity scores). In another moreparticular example, the target user recommendation module 210 canidentify a certain percentage of the contact users as target users basedon the users' affinity score (e.g., the top ten percent of the contactusers in terms of affinity score).

In some implementations, the target user recommendation module 210 maydetermine whether a given contact user is to be selected as a targetuser by determining a set of content items that the given contact usermight be interested in and a set of content items that the first usermight be interested in. For example, the target user recommendationmodule 210 determines one or more content items that the given contactuser has interacted with and a set of users that have interacted withthe same or similar content items (also referred to herein as the “firstset of users”). For example, the target user recommendation module 210identifies one or more videos that have been watched by the givencontact user and a first set of users that have watched the same orsimilar videos. The target recommendation module 210 then identifies afirst set of content items that have been interacted with by one or moreof the first set of users (e.g., 50% of the first set of users, 90% ofthe first set of users, etc.) but not by the contact user. For example,the first set of content items can include videos that have been watchedby the first set of users but not watched by the given contact user.

Additionally, the target user recommendation module 210 may identify oneor more content items that the first user has interacted with and asecond set of users that have interacted with the same or similarcontent items. For example, the target user recommendation module 210identifies one or more videos that have been watched by the first userand a set of users that have watched the same or similar videos. Theaffinity score module 220 may then determine a second set of contentitems that have been interacted with by one or more of the second set ofusers (e.g., 50% of the second set of users, 90% of the second set ofusers, etc.) but not watched by the first user.

The target user recommendation module 210 may then generate a list ofcontent items based on the first set of content items and the second setof content items. For example, the list of content items can includecommon content items of the first set of content items and the secondset of content items. As another example, the list of content items canbe and/or include a combination of the first set of content items andthe second set of content items. In some implementations, the givencontact user can be selected as a target user if the first content itemis in the list of content items.

The affinity score module 220 can obtain (e.g., may determine, retrieve,calculate, etc.) one or more affinity scores for one or more of thecontact users of the first user. Examples of the affinity scores includeindividual affinity scores indicative of likelihood that the contactusers would interact with the first content item, individual affinityscores indicative of affinities between the contact user and the firstuser, etc.

In some implementations, the affinity score module 220 may determine anindividual affinity score (of the first user for a contact user)indicative of a likelihood that a given contact user would interact withthe first content item based on affinities of the contact user for thefirst content item. For example, the affinity score module 220 mayidentify one or more content items that the contact user has interactedwith (e.g., one or more videos that the contact user has watched,shared, liked, etc.) and a set of users that have interacted with thesame identified content items and/or content items related to theidentified content items. In some implementations, the set of user maybe users of the content sharing platform, the mobile platform, etc. Theset of users may be identified by performing a cluster analysis asdescribed above. The affinity score module 220 then determines theaffinity score based on a number of the set of users and/or a percentageof the set of users having interacted with the first content item. Moreparticularly, for example, a higher affinity score may be assigned tothe contact user when a greater number or percentage of the set of usershas interacted with the first content item. In some implementations, thenumber of the set of users that have engaged with the content item canbe normalized by dividing the number of the set of users by the numberof users that have engaged with the content item.

In addition to or as an alternative to determining the individualaffinity score indicative of the likelihood that the given contact userwould interact with the first content item, the affinity score module220 may determine an individual affinity score indicative of an affinitybetween the contact user and the first user. The affinity score may bedetermined based on various measures of affinities between the contactuser and the first user, such as the duration of content associated withthe first user that has been consumed by the contact user, whether thecontact user is an active or inactive user of the content sharingplatform 120, a percentage of content consumed by the contact user thatis associated with the first user, the number of messages (e.g., emails,notifications, etc.) related to content associated with the first userthat have been viewed, replied, and/or forwarded by the contact user, anumber of other users that are connected to the contact user, etc. Insome implementations, a higher affinity score may be assigned to acontact user that is an active user of the content sharing platform 120and/or that is connected to a given number of other users (e.g., anumber less than a threshold value).

In some implementations, the affinity score module 220 may determine anoverall affinity score for a given contact user based on multipleindividual affinity scores. For example, the affinity score module 220may determine an overall affinity score for a given contact user bycombining multiple individual affinity scores determined for the givencontact user (e.g., an individual score indicative of a likelihood thatthe contact user would interact with the first content item, anindividual score indicative of affinities between the contact user andthe first user, etc.). In a more particular example, a first individualaffinity score can be a multiplier for a second individual affinityscore. In another more particular example, the overall affinity scorecan be a weighted sum, a weighted average, and/or any other suitablecombination of the multiple individual affinity scores.

Affinity scores (e.g., individual affinity scores, overall affinityscores, etc.) may be determined for the contact users based onparticular information related to user interactions with content items.For example, the affinity scores may be determined based on informationrelated to one or more particular types of user interactions withcontent items, such as consuming the content items, commenting on thecontent items, sharing the content items, etc.

As another example, the affinity score may be determined based on publicinformation related to user interactions with content items. Privateinformation related to a user's interactions with content items may alsobe used upon receiving the user's permission of such use. Additionally,the affinity score module 220 can determine an affinity score usingpublic information and compare the affinity score with a threshold. Inresponse to determining that the affinity score is greater than thethreshold, the affinity score module 220 may then modify the affinityscore based on the private information (e.g., by calculating an updatedaffinity score based on the private information and the publicinformation).

The content sharing UI module 230 may then provide a prompt to the firstuser to share the first content item with the target users. The promptcan include video content, audio content, text, images, and/or any othercontent. In one example, the prompt can be provided by sending a messageto a computing device of the first user (e.g., a client device 110 ofFIG. 1) by email, text message, mobile notification, accountnotification, etc.

In another example, the prompt can be sent along with data for use torender one or more user interfaces and can be presented as part of theuser interfaces. Examples of the user interfaces include a suggestionsinterface of what to watch next, a search interface for content items ofthe content sharing platform, a browsing interface for content items ofthe content sharing platform, a settings interface, a subscriptionsinterface, a playlists interface, a favorites interface, a historyinterface, an uploads interface, etc. In a more particular example, oneor more user interfaces 310, 330, and 350 as illustrated in FIGS. 3A-Bmay be used to prompt the first user to share the first content itemwith the target users.

In some implementations, the first user may select one or more of thetarget users to share the first content item. For example, thisselection can be made using one or more user interfaces provided by thecontent sharing UI module 230, such as user interfaces 330 and/or 350 asillustrated in FIG. 3B.

Upon receiving an indication that the first content item is to be sharedwith one or more target users (e.g., a user selection of one or moreuser interface elements corresponding to the target users and/or a userselection of a “send” button as shown in FIG. 3B), content sharingmodule 240 may cause information related to the first content item to besent to one or more computing devices of the target users. For example,the content sharing module 240 may initiate a conversation between thefirst user and the target user(s) using chat and/or messagingfunctionality provided by the media viewer 111, a chat application, amessaging application, and/or any other suitable application. In someimplementations, the content sharing module 240 may cause informationrelated to the first content item (e.g., a URL, an image, a video clip,etc.) to be presented in the conversation.

As another example, the content sharing module 240 can send a message toclient devices of the target users. The message can include any suitableinformation related to the first content item, such as a link (e.g., auniform resource locator (URL)) directed to the first content item, animage associated with the target item, an indication that identifies thefirst user, etc. The message and its associated content can be sent tothe target users by email, text messages, mobile notifications, accountnotifications, etc.

In some implementations, the functionality of the content sharingcomponent 140 and data store 106 described in FIG. 2 may be performedwholly, or in part, on a client device.

Turning to FIG. 3A, an example of a user interface 310 for providingpersonalized content sharing functionality in accordance with someimplementations of the disclosed subject matter is shown.

As illustrated, the interface 310 may include a content player 311 thatcan be used to provide playback of content items (e.g., videos). In someimplementations, a content item can be played back along withinformation related to the content item, such as a title of the contentitem, a thumbnail image representative of the content item, and anyother information related to the content item.

The interface 310 may include a comment section 313 and a contentrecommendation interface 315. A user may provide comments on the contentitem using the comment section 313. The content recommendation interface313 may be used to present content items that are related to the contentitem being played using the content player 311 (e.g., content itemshaving the same or similar topics, genres, keywords, etc.).

The interface 310 may also include a message 317 to prompt a viewer(e.g., the first user) of the content item to share the content itemwith one or more target users. In some implementations, the viewer mayindicate that the content item is to be shared with the target users byselecting button 321. Alternatively, the viewer may minimize or dismissthe message 340 by selecting a button 323.

The message 317 may include identifying information related to thetarget user(s), such a user name of the target user(s), an imagerepresentative of an account associated with the target user(s), etc.The message 317 may include text, images, video, and/or any othercontent. The message 317 may be positioned in any suitable portion ofthe user interface 310. For example, the message 317 and the contentplayer 311 may overlap in some implementations. In another example, themessage 317 may be positioned between the content player 311 and thecomment section 313.

While the message 317 is shown as a text message, this is merelyillustrative. For example, the message 317 may be presented as a videoor banner in the content player 311.

FIG. 3B illustrates examples of user interfaces 330 and 350 forproviding personalized content sharing functionality in accordance withsome implementations of the disclosed subject matter.

In some implementations, user interfaces 330 and/or 350 may be presentedto the first user during playback of the first content item. The userinterface 330 may include a “return” button 331. The playback of thefirst content item can be resumed responsive to a user selection of the“return” button 335. The user interface 330 may also include a playbackcontrol component 333 for controlling the playback of the first contentitem (e.g., rewinding, forwarding, pausing, etc. the playback of thefirst content item).

As illustrated, the user interface 330 may include one or more userinterface elements 335 for presenting information of one or more targetusers with which the first user can share the first content item. Thetarget users may be identified by the target user recommendation module210 as described above in connection with FIG. 2. For example, userinterface elements 335 can include an avatar, image, or any othersuitable representation 341 of a given target user or a group of targetusers (e.g., a group of contact users related to the first user). Asanother example, the user interface elements 335 can include a username343 of each target user or group of target users.

The first user may select one or more of the target users to share thefirst content item (e.g., by selecting the images 341 or any other UIelements corresponding to the target users and/or groups of targetusers). The user interface 350 may then be presented to the first user(e.g., by the content sharing UI module 230 of FIG. 2). As shown in FIG.3B, the user interface 350 may visually illustrate (e.g., usinghighlighted images 351, highlighted names, or any other visualindicator) that the target users and/or groups of target users have beenselected for sharing.

The first user may initiate sharing of the first content item with theselected target user(s) by selecting a “send” button 347. The sharingcan be cancelled in response to receiving a user selection of a “cancel”button 345.

FIG. 4 is a flow diagram illustrating a method 400 for providingpersonalized content sharing by a client device, according to someimplementations of the disclosure. The method 400 may be performed byprocessing logic that comprises hardware (e.g., circuitry, dedicatedlogic, programmable logic, microcode, etc.), software (e.g.,instructions run on a processing device to perform hardware simulation),or a combination thereof.

For simplicity of explanation, the methods of this disclosure aredepicted and described as a series of acts. However, acts in accordancewith this disclosure can occur in various orders and/or concurrently,and with other acts not presented and described herein. Furthermore, notall illustrated acts may be required to implement the methods inaccordance with the disclosed subject matter. In addition, those skilledin the art will understand and appreciate that the methods couldalternatively be represented as a series of interrelated states via astate diagram or events. Additionally, it should be appreciated that themethods disclosed in this specification are capable of being stored onan article of manufacture to facilitate transporting and transferringsuch methods to computing devices. The term “article of manufacture,” asused herein, is intended to encompass a computer program accessible fromany computer-readable device or storage media. In one implementation,method 400 may be performed by a processing device executing a mediaviewer 111 as shown in FIG. 1.

As illustrated, method 400 begins at block 405 when the processingdevice transmits, to a server device, a request pertaining to a firstuser. For example, the request may be and/or include a request toperform an action on the content item, such as uploading the contentitem to a content sharing platform, presenting information related tothe content item, providing playback of the content item, etc.

At block 410, processing device can receive data for use to prompt thefirst user to share the content item with one or more target usersand/or to perform the action. The data may include video data associatedwith the content item, audio data associated with the content item, datafor use in presenting a message and/or a user interface for promptingthe first user to sharing the content item with the target users, etc.

At block 415, the processing device can provide a prompt to the firstuser to share the content item with the target users using the receiveddata. The prompt can be provided by presenting video content, audiocontent, text, images, and/or any other content. For example, the promptcan be provided by presenting one or more user interfaces 310, 330,and/or 350 as illustrated in FIGS. 3A-3B.

At block 420, the processing device receives an indication to share thecontent item with one or more of the target user(s). The indication maycorrespond to any user input, such as a user selection of one or moretarget users, a button 321, and/or a “send” button 347 of FIGS. 3A and3B, a voice command, a user gesture, etc. The indication may include auser selection of the one or more target users. At block 425, theprocessing device can transmit a request to share the content item withthe target user(s) to the server device.

FIG. 5 is a flow diagram illustrating a method 500 for providingpersonalized content sharing by a server device, according to animplementation of the disclosure. Method 500 may be performed byprocessing logic that comprises hardware (e.g., circuitry, dedicatedlogic, programmable logic, microcode, etc.), software (e.g.,instructions run on a processing device to perform hardware simulation),or a combination thereof. In one implementation, method 500 may beperformed by a processing device executing the content sharing component140, as shown in FIGS. 1 and 2.

As illustrated, method 500 begins at block 505 when the processingdevice receives, from a computing device of a first user, a requestpertaining to a content item. In some implementations, the request canbe and/or include a request to perform an action on the content item forthe first user, such as uploading the content item to a content sharingplatform, presenting information related to the content item, providingplayback of the content item, etc.

At block 510, the processing device can identify the first user. Forexample, the first user can be identified using a user identifierassociated with the first user, an identifier associated with a channelof the content sharing platform that is associated with the first user,etc.

At block 515, the processing device can identify one or more other usersthat are contacts of the first user. For example, the processing deviceidentifies one or more other users (e.g., contact users) that areconnected to the first user via a content sharing platform, a mobileplatform, a social network platform, an email service, a phone service,etc.

At block 520 the processing device can select, from the other users, oneor more target users. For example, the processing device can select astarget users one or more of the other users that have subscribed tocontent associated with the first user on a content sharing platform. Asanother example, the processing device selects the target users based onaffinity scores associated with the other users. In a more particularexample, the target users can be identified by performing one or moreoperations as described below in connection with FIG. 6. As yet anotherexample, the processing device selects each of the other users as targetusers.

At block 525, the processing device provides, to a computing device ofthe first user, a prompt to the first user to share the content itemwith the selected target users. For example, the processing device canprovide data for use in prompting the first user to share the contentitem with one or more of the target users. The data may include videodata associated with the content item, audio data associated with thecontent item, data for use in presenting a message and/or a userinterface for prompting the first user to sharing the content item withthe target users, etc.

At block 530, the processing device receives a request to share thecontent item with the target user(s). In some implementations, therequest can include a user selection of one or more of the target userswith which the content item is to be shared.

At block 535, the processing device can cause information related to thecontent item to be sent to computing devices of the target user(s). Forexample, the processing device initiate a conversation between the firstuser and the target user(s) using a mobile platform, a content sharingplatform, a social network, and/or any other suitable platform orservice.

FIG. 6 is a flow diagram illustrating an example of a method 600 foridentifying target users for personalized content sharing, according toan implementation of the disclosure. Method 600 may be performed byprocessing logic that comprises hardware (e.g., circuitry, dedicatedlogic, programmable logic, microcode, etc.), software (e.g.,instructions run on a processing device to perform hardware simulation),or a combination thereof. In one implementation, method 600 may beperformed by a processing device executing the content sharing component140, as shown in FIGS. 1 and 2.

As illustrated, method 600 begins at block 605 when the processingdevice identifies a group of candidate target users for use in promptinga first user to share a content item. For example, the processing deviceidentifies contacts of the first user as the candidate target users. Asanother example, the processing device identifies one or more otherusers that have subscribed to content associated with the first user ascandidate target users. As yet another example, the processing deviceidentifies one or more other users by performing a cluster analysis asdescribed above in connection with FIG. 2.

At block 610, the processing device can determine affinity scores forthe candidate target users. For example, the processing devicedetermines an individual affinity score for each candidate target userbased on an affinity of the candidate target user for the content item.As another example, the processing device determines an individualaffinity score for each candidate target user based on affinitiesbetween the candidate target user and the first user. As yet anotherexample, the processing device determines an overall affinity scorebased on multiple individual affinity scores (e.g., between candidatetarget user and the first content item, between candidate target userand first user, etc.) for each candidate target user. In a moreparticular example, one or more affinity scores can be determined for acandidate target users by performing one or more operations as describedin connection with FIG. 7.

At block 615, the processing device can rank the candidate target usersby affinity score (e.g., by individual affinity score, by overallaffinity score, etc.). At block 620, the processing device can selectone or more target users based on the ranked affinity scores. Forexample, the top X candidate target users with the highest affinityscores are selected. In another example, the candidate target users withan affinity score above a threshold affinity score value are selected.In some implementations, the predetermined number and/or the thresholdaffinity score value can be configured by an administrator of thecontent sharing platform, the first user, etc.

FIG. 7 is a flow diagram illustrating an example of a method 700 fordetermining an affinity score for a candidate target user, according toan implementation of the disclosure. The method 700 may be performed byprocessing logic that comprises hardware (e.g., circuitry, dedicatedlogic, programmable logic, microcode, etc.), software (e.g.,instructions run on a processing device to perform hardware simulation),or a combination thereof. In one implementation, method 700 may beperformed by a processing device executing the content sharing component140, as shown in FIGS. 1 and 2.

As illustrated, method 700 begins at block 710 when the processingdevice determines a first affinity score indicative of a likelihood thatthe candidate target user would interact with a content item. Forexample, at block 712, the processing device can identify one or morecontent items that the candidate target user has interacted with. Forexample, the processing device identifies one or more content items thatthe candidate target user has consumed.

At block 714, the processing device can identify a group of users havinginteracted with the content items and/or other content items related tothe identified content item. For example, the processing deviceidentifies the group of users that have consumed the identified contentitem.

At block 716, the processing device can determine a number of the groupof users that have interacted with a first content item. At block 718,the processing device can determine the first affinity score based onthe number or percentage determined at block 716.

At block 720, the processing device can determine a second affinityscore indicative of affinities between the candidate target user and thefirst user. At block 730, the processing device can determine an overallaffinity score based on the first affinity score and/or the secondaffinity score. For example, the processing device determines theoverall affinity score by calculating a weighted sum, a weightedaverage, and/or any other suitable combination of the first affinityscore and the second affinity score.

FIG. 8 illustrates a diagrammatic representation of a machine in theexemplary form of a computer system 800 within which a set ofinstructions, for causing the machine to perform any one or more of themethodologies discussed herein, may be executed. In alternativeimplementations, the machine may be connected (e.g., networked) to othermachines in a LAN, an intranet, an extranet, or the Internet. Themachine may operate in the capacity of a server or a client machine inclient-server network environment, or as a peer machine in apeer-to-peer (or distributed) network environment. The machine may be apersonal computer (PC), a tablet PC, a set-top box (STB), a PersonalDigital Assistant (PDA), a cellular telephone, a web appliance, aserver, a network router, switch or bridge, or any machine capable ofexecuting a set of instructions (sequential or otherwise) that specifyactions to be taken by that machine. Further, while only a singlemachine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein.

The exemplary computer system 800 includes a processing device(processor) 802, a main memory 804 (e.g., read-only memory (ROM), flashmemory, dynamic random access memory (DRAM) such as synchronous DRAM(SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 806 (e.g., flashmemory, static random access memory (SRAM), etc.), and a data storagedevice 818, which communicate with each other via a bus 808.

Processor 802 represents one or more general-purpose processing devicessuch as a microprocessor, central processing unit, or the like. Moreparticularly, the processor 802 may be a complex instruction setcomputing (CISC) microprocessor, reduced instruction set computing(RISC) microprocessor, very long instruction word (VLIW) microprocessor,or a processor implementing other instruction sets or processorsimplementing a combination of instruction sets. The processor 802 mayalso be one or more special-purpose processing devices such as anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA), a digital signal processor (DSP), network processor,or the like. The processor 802 is configured to execute instructions 826for performing the operations and steps discussed herein.

The computer system 800 may further include a network interface device822. The computer system 800 also may include a video display unit 810(e.g., a liquid crystal display (LCD), a cathode ray tube (CRT), or atouch screen), an alphanumeric input device 812 (e.g., a keyboard), acursor control device 814 (e.g., a mouse), and a signal generationdevice 820 (e.g., a speaker).

The data storage device 818 may include a computer-readable storagemedium 824 on which is stored one or more sets of instructions 826(e.g., software) embodying any one or more of the methodologies orfunctions described herein. The instructions 826 may also reside,completely or at least partially, within the main memory 804 and/orwithin the processor 802 during execution thereof by the computer system800, the main memory 804 and the processor 802 also constitutingcomputer-readable storage media. The instructions 826 may further betransmitted or received over a network 874 via the network interfacedevice 822.

In one embodiment, the instructions 826 include instructions for thecontent sharing component 140 as described with respect to FIGS. 1 and2, and/or a software library containing methods that provide a contentsharing component for a content sharing platform. While thecomputer-readable storage medium 824 is shown in an exemplaryimplementation to be a single medium, the term “computer-readablestorage medium” should be taken to include a single medium or multiplemedia (e.g., a centralized or distributed database, and/or associatedcaches and servers) that store the one or more sets of instructions. Theterm “computer-readable storage medium” shall also be taken to includeany medium that is capable of storing, encoding or carrying a set ofinstructions for execution by the machine and that cause the machine toperform any one or more of the methodologies of the present disclosure.The term “computer-readable storage medium” shall accordingly be takento include, but not be limited to, solid-state memories, optical media,and magnetic media.

In the foregoing description, numerous details are set forth. It will beapparent, however, to one of ordinary skill in the art having thebenefit of this disclosure, that the present disclosure may be practicedwithout these specific details. In some instances, well-known structuresand devices are shown in block diagram form, rather than in detail, inorder to avoid obscuring the present disclosure.

Some portions of the detailed description have been presented in termsof algorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “segmenting”, “analyzing”, “determining”, “enabling”,“identifying,” “modifying” or the like, refer to the actions andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical (e.g.,electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The disclosure also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may include a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but not limited to, any type of diskincluding floppy disks, optical disks, CD-ROMs, and magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, or any type of media suitable forstoring electronic instructions.

The words “example” or “exemplary” are used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “example” or “exemplary” is not necessarily to be construed aspreferred or advantageous over other aspects or designs. Rather, use ofthe words “example” or “exemplary” is intended to present concepts in aconcrete fashion. As used in this application, the term “or” is intendedto mean an inclusive “or” rather than an exclusive “or”. That is, unlessspecified otherwise, or clear from context, “X includes A or B” isintended to mean any of the natural inclusive permutations. That is, ifX includes A; X includes B; or X includes both A and B, then “X includesA or B” is satisfied under any of the foregoing instances. In addition,the articles “a” and “an” as used in this application and the appendedclaims should generally be construed to mean “one or more” unlessspecified otherwise or clear from context to be directed to a singularform. Moreover, use of the term “an embodiment” or “one embodiment” or“an implementation” or “one implementation” throughout is not intendedto mean the same embodiment or implementation unless described as such.

Reference throughout this specification to “one embodiment” or “anembodiment” means that a particular feature, structure, orcharacteristic described in connection with the embodiment is includedin at least one embodiment. Thus, the appearances of the phrase “in oneembodiment” or “in an embodiment” in various places throughout thisspecification are not necessarily all referring to the same embodiment.In addition, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or.”

It is to be understood that the above description is intended to beillustrative, and not restrictive. Many other embodiments will beapparent to those of skill in the art upon reading and understanding theabove description. The scope of the disclosure should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A method for personalized sharing of contentitems on a content sharing platform, the method comprising: presenting,by a user device of a user of the content sharing platform, a userinterface (UI) including content and a UI share element allowing theuser to share the content with other users; in response to a selectionof the UI share element by the user in the UI, transmitting, to aserver, a request to share the content with other users; receiving, fromthe server, a server-selected subset of contacts of the user on thecontent sharing platform, wherein contacts in the subset of contacts areselected from a plurality of contacts of the user on the content sharingplatform based on at least one of (i) an affinity of the user with eachcontact of the subset of contacts on the content sharing platform, or(ii) interactions of the user with content of each contact of the subsetof contacts; presenting, to the user, the subset of contacts of the usercomprising a first contact of the plurality of contacts of the user andnot including a second contact of the plurality of contacts of the user;and allowing the user to share the content with the first contact of theplurality of contacts.
 2. The method of claim 1, wherein the subset ofcontacts are selected from the plurality of contacts of the user usingaffinity scores corresponding to the plurality of contacts of the user.3. The method of claim 2, wherein each affinity score is defined by anaffinity between the user and a respective contact of the plurality ofcontacts.
 4. The method of claim 3, wherein the affinity score isindicative of a likelihood of an interaction by the respective contactwith the content.
 5. The method of claim 1, wherein each contact of thesubset of contacts is presented using at least one of an image of arespective contact or a name of the respective contact.
 6. The method ofclaim 1, wherein each contact of the subset of contacts is representedby a selectable UI element.
 7. The method of claim 6, wherein allowingthe user to share the content with the first contact of the plurality ofcontacts comprises: receiving a selection, by the user, of a UI elementrepresenting the first contact; visually indicating the selection of theUI element representing the first contact; and upon receiving aselection, by the user, of a send button, initiating sharing of thecontent with the first contact.
 8. The method of claim 7, whereinallowing the user to share the content with the first contact of theplurality of contacts comprises: presenting a comments field to allowthe user to enter a comment prior to sharing the content with the firstcontact.
 9. The method of claim 1, wherein allowing the user to sharethe content with the first contact of the plurality of contactscomprises: displaying a cancel button while presenting the subset ofcontacts of the user; receiving a selection, by the user, of a cancelbutton; and refraining from sharing the content with the first contact.10. An apparatus comprising: a memory; and a processing devicecommunicably coupled to the memory, the processing device to executeinstructions to: present, by a user device of a user of the contentsharing platform, a user interface (UI) including content and a UI shareelement allowing the user to share the content with other users; inresponse to a selection of the UI share element by the user in the UI,transmit, to a server, a request to share the content with other users;receive, from the server, a server-selected subset of contacts of theuser on the content sharing platform, wherein contacts in the subset ofcontacts are selected from a plurality of contacts of the user on thecontent sharing platform based on at least one of (i) an affinity of theuser with each contact of the subset of contacts on the content sharingplatform, or (ii) interactions of the user with content of each contactof the subset of contacts; present, to the user, the subset of contactsof the user comprising a first contact of the plurality of contacts ofthe user and not including a second contact of the plurality of contactsof the user; and allow the user to share the content with the firstcontact of the plurality of contacts.
 11. The apparatus of claim 10,wherein the subset of contacts are selected from the plurality ofcontacts of the user using affinity scores corresponding to theplurality of contacts of the user.
 12. The apparatus of claim 11,wherein each affinity score is defined by an affinity between the userand a respective contact of the plurality of contacts.
 13. The apparatusof claim 12, wherein the affinity score is indicative of a likelihood ofan interaction by the respective contact with the content.
 14. Theapparatus of claim 10, wherein each contact of the subset of contacts ispresented using at least one of an image of a respective contact or aname of the respective contact.
 15. The apparatus of claim 10, whereineach contact of the subset of contacts is represented by a selectable UIelement.
 16. The apparatus of claim 15, wherein to allow the user toshare the content with the first contact of the plurality of contacts,the processing device is to: receive a selection, by the user, of a UIelement representing the first contact; visually indicate the selectionof the UI element representing the first contact; and upon receiving aselection, by the user, of a send button, initiate sharing of thecontent with the first contact.
 17. The apparatus of claim 16, whereinto allow the user to share the content with the first contact of theplurality of contacts, the processing device is to: present a commentsfield to allow the user to enter a comment prior to sharing the contentwith the first contact.
 18. The system of claim 10, wherein to allow theuser to share the content with the first contact of the plurality ofcontacts, the processing device is to: display a cancel button whilepresenting the subset of contacts of the user; receive a selection, bythe user, of a cancel button; and refrain from sharing the content withthe first contact.
 19. A non-transitory machine-readable storage mediumstoring instructions which, when executed, cause a processing device to:present, on a screen of a user device of a user of a content sharingplatform, a user interface (UI) including content and a UI share elementallowing the user to share the content with other users; in response toa selection of the UI share element by the user in the UI, transmit, toa server, a request to share the content with other users; receive, fromthe server, a server-selected subset of contacts of the user on thecontent sharing platform, wherein contacts in the subset of contacts areselected from a plurality of contacts of the user on the content sharingplatform based on at least one of (i) an affinity of the user with eachcontact of the subset of contacts on the content sharing platform, or(ii) interactions of the user with content of each contact of the subsetof contacts; present, to the user, the subset of contacts of the usercomprising a first contact of the plurality of contacts of the user andnot including a second contact of the plurality of contacts of the user;and allow the user to share the content with the first contact of theplurality of contacts.
 20. The non-transitory machine-readable storagemedium of claim 19, wherein the subset of contacts are selected from theplurality of contacts of the user using affinity scores corresponding tothe plurality of contacts of the user.